دسته بندی ها
23:05 1398/07/18

جابه جایی سطر و ستون در Sql Server

مشخصات سوال کننده :
کاربر : hamid_b     امتیاز کاربر : 510     رتبه کاربر : 4
دسته بندی : Sql Server MySql Access Oracle

به این سوال امتیاز بدهید    1
تعداد بازدید این سوال : 5850
پاسخ دهنده : saedbfd 23:24 1398/07/26

سلام

شما میتونید از دستور Pivot در Sql Server استفاده کنید. به صورت غیر Pivot هم می تونید این کار رو انجام بدید. من یک قطعه کد رو براتون قرار می دم.

 

select PD.shamsiDate,
IsNull((Select PD_A.ShiftDesc From Plane_Tbl PD_A Where ShiftDesc = 1 And PD_A.shamsiDate = pd.shamsiDate),'استراحت') As shiftA,
IsNull((Select PD_B.ShiftDesc From Plane_Tbl PD_B Where ShiftDesc = 2 And PD_B.shamsiDate = pd.shamsiDate),'استراحت') As shiftB,
IsNull((Select PD_C.ShiftDesc From Plane_Tbl PD_C Where ShiftDesc = 3 And PD_C.shamsiDate = pd.shamsiDate),'استراحت') As shiftC,
IsNull((Select PD_D.ShiftDesc From Plane_Tbl PD_D Where ShiftDesc = 4 And PD_D.shamsiDate = pd.shamsiDate),'استراحت') As shiftD

From Plane_Tbl PD Group By shamsiDate

به این صورت می تونید عمل جابه جایی سطر و ستون رو انجام بدید.

موفق باشید

به این پاسخ امتیاز بدهید    1
امتیاز: 1654 رتبه: 1
پاسخ دهنده : reza001364 23:24 1398/07/26

این دستور یکم سرعتش از subquery بیشتر هستش فک کنم به کارتون بیاد

select id , [Date],
Count (case when [shift] = 'A' then  1 end) As [A],
Count (case when [shift] = 'B' then  1 end) As [B],
Count (case when [shift] = 'C' then  1 end) As [C],
Count (case when [shift] = 'D' then  1 end) As [D]

                

from TTT

Group by id , [Date]
ویرایش شده در جمعه 11 مهر 1399 ساعت 01:34:36
به این پاسخ امتیاز بدهید    0
امتیاز: 35 رتبه: 22
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود